From e042ffa71e427081fe975a5f3d5e23cba6d5eabb Mon Sep 17 00:00:00 2001 From: Alexander Larsson Date: Mon, 24 Jun 2013 14:06:20 +0200 Subject: [PATCH] GtkImage: Set the window on the gtkiconhelper --- gtk/gtkimage.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/gtk/gtkimage.c b/gtk/gtkimage.c index c6b2dad0d8..f30ace2571 100644 --- a/gtk/gtkimage.c +++ b/gtk/gtkimage.c @@ -149,6 +149,7 @@ struct _GtkImagePrivate static gint gtk_image_draw (GtkWidget *widget, cairo_t *cr); static void gtk_image_unmap (GtkWidget *widget); +static void gtk_image_realize (GtkWidget *widget); static void gtk_image_unrealize (GtkWidget *widget); static void gtk_image_get_preferred_width (GtkWidget *widget, gint *minimum, @@ -217,6 +218,7 @@ gtk_image_class_init (GtkImageClass *class) widget_class->get_preferred_height = gtk_image_get_preferred_height; widget_class->get_preferred_height_and_baseline_for_width = gtk_image_get_preferred_height_and_baseline_for_width; widget_class->unmap = gtk_image_unmap; + widget_class->realize = gtk_image_realize; widget_class->unrealize = gtk_image_unrealize; widget_class->style_updated = gtk_image_style_updated; widget_class->screen_changed = gtk_image_screen_changed; @@ -1361,9 +1363,25 @@ gtk_image_unmap (GtkWidget *widget) GTK_WIDGET_CLASS (gtk_image_parent_class)->unmap (widget); } +static void +gtk_image_realize (GtkWidget *widget) +{ + GtkImage *image = GTK_IMAGE (widget); + GtkImagePrivate *priv = image->priv; + + GTK_WIDGET_CLASS (gtk_image_parent_class)->realize (widget); + + _gtk_icon_helper_set_window (priv->icon_helper, + gtk_widget_get_window (widget)); +} + static void gtk_image_unrealize (GtkWidget *widget) { + GtkImage *image = GTK_IMAGE (widget); + GtkImagePrivate *priv = image->priv; + + _gtk_icon_helper_set_window (priv->icon_helper, NULL); gtk_image_reset_anim_iter (GTK_IMAGE (widget)); GTK_WIDGET_CLASS (gtk_image_parent_class)->unrealize (widget); -- 2.30.2